package com.ruoyi.school.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 课表对象 sch_schedule
 * 
 * @author ruoyi
 * @date 2025-09-23
 */
public class Schedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 学年(如:2023-2024) */
    @Excel(name = "学年(如:2023-2024)")
    private String academicYear;

    /** 学期(SPRING:春季, AUTUMN:秋季) */
    @Excel(name = "学期(SPRING:春季, AUTUMN:秋季)")
    private String semester;

    /** 教学周(1-20) */
    @Excel(name = "教学周(1-20)")
    private Long teachingWeek;

    /** 教室ID */
    @Excel(name = "教室ID")
    private Long classroomId;

    /** 教师ID */
    @Excel(name = "教师ID")
    private Long teacherId;

    /** 课程名称 */
    @Excel(name = "课程名称")
    private String courseName;

    /** 星期几(1-7) */
    @Excel(name = "星期几(1-7)")
    private Long dayOfWeek;

    /** 开始节次 */
    @Excel(name = "开始节次")
    private Long periodStart;

    /** 结束节次 */
    @Excel(name = "结束节次")
    private Long periodEnd;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 数据来源(MANUAL:手动, IMPORT:导入, API:接口) */
    @Excel(name = "数据来源(MANUAL:手动, IMPORT:导入, API:接口)")
    private String dataSource;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setAcademicYear(String academicYear) 
    {
        this.academicYear = academicYear;
    }

    public String getAcademicYear() 
    {
        return academicYear;
    }

    public void setSemester(String semester) 
    {
        this.semester = semester;
    }

    public String getSemester() 
    {
        return semester;
    }

    public void setTeachingWeek(Long teachingWeek) 
    {
        this.teachingWeek = teachingWeek;
    }

    public Long getTeachingWeek() 
    {
        return teachingWeek;
    }

    public void setClassroomId(Long classroomId) 
    {
        this.classroomId = classroomId;
    }

    public Long getClassroomId() 
    {
        return classroomId;
    }

    public void setTeacherId(Long teacherId) 
    {
        this.teacherId = teacherId;
    }

    public Long getTeacherId() 
    {
        return teacherId;
    }

    public void setCourseName(String courseName) 
    {
        this.courseName = courseName;
    }

    public String getCourseName() 
    {
        return courseName;
    }

    public void setDayOfWeek(Long dayOfWeek) 
    {
        this.dayOfWeek = dayOfWeek;
    }

    public Long getDayOfWeek() 
    {
        return dayOfWeek;
    }

    public void setPeriodStart(Long periodStart) 
    {
        this.periodStart = periodStart;
    }

    public Long getPeriodStart() 
    {
        return periodStart;
    }

    public void setPeriodEnd(Long periodEnd) 
    {
        this.periodEnd = periodEnd;
    }

    public Long getPeriodEnd() 
    {
        return periodEnd;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setDataSource(String dataSource) 
    {
        this.dataSource = dataSource;
    }

    public String getDataSource() 
    {
        return dataSource;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("academicYear", getAcademicYear())
            .append("semester", getSemester())
            .append("teachingWeek", getTeachingWeek())
            .append("classroomId", getClassroomId())
            .append("teacherId", getTeacherId())
            .append("courseName", getCourseName())
            .append("dayOfWeek", getDayOfWeek())
            .append("periodStart", getPeriodStart())
            .append("periodEnd", getPeriodEnd())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("dataSource", getDataSource())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
